Adaptive digital filter

ABSTRACT

In adaptive digital filtering, first steps of adapting a filter coefficient dependent on a received data sample, and second steps of filtering by applying an adapted filter coefficient to a received data sample, are alternated so that adapted filter coefficients and modulated data samples are alternatively determined. In consequence, each adapted filter coefficient can be provided for immediate use in filtering.

The present invention relates to adaptive digital filters, in particularfor use in radio receivers.

Conventional adaptive digital filters are known, for example, fromdigital signal processing by E C Ifeachor and D W Jervis, 1993Addison-Wesley Publishers Limited. These filters suffer the disadvantagethat filter coefficients are all updated and stored before use inmodulating received data samples. This procedure necessarily involveswriting the coefficients to memory and reading all the coefficients frommemory before filtering. This makes the adaptive filter relatively slow,or requires additional circuitry for the separate up-dating ofcoefficients.

The present invention is defined in the claims to which reference shouldnow be made.

The present invention provides a method of adaptive digital filteringcomprising first steps each of adapting a filter coefficient dependenton a received data sample, and second steps each of applying an adaptedfilter coefficient to a received data sample, in which the first andsecond steps are timed such that adapted filter coefficients andmodulated data samples are alternatively determined. In consequence,each adapted filter coefficient can be provided for immediate use infiltering without needing to be held in a memory.

Coefficients are adapted according to an error derived from a previousfiltering operation for use in the next filtering operation. Eachfiltering operation is on successively later received data samples.

The present invention also provides an adaptive digital filtercomprising filter means and adaptive means, the adaptive means beingoperative to adapt a filter coefficient to provide an adaptedcoefficient, the filter means being operative to apply an adaptivefilter coefficient to a received data sample, the operation of thefilter means and adaptive means being timed such that adaptive filtercoefficients and modulated data samples are alternately provided. Inthis way, an adapted filter coefficient may be read into the filtermeans one clock cycle after having been determined. An adapted filtercoefficient can, at a predetermined time, both be read by the filtermeans and written to a memory for later use.

The present invention also provides a receiver including a noveladaptive digital filter as outlined above. The receiver could be forradio or telecommunications, in particular for time division multiplex(TDM) and/or Time division multiple access (TDMA) communications. Thereceiver can be a base station receiving TDMA communications fromsubscriber units which can be at fixed locations.

The present invention also relates to corresponding methods of radioreception.

The present invention preferably provides the advantage of increaseddata throughput through simple adaptive digital filters.

A preferred embodiment of the present invention will now be described byway of example and with reference to the drawings in which:

FIG. 1 is a simple block diagram illustrating an adaptive filter; and

FIG. 2 is a block diagram of an adaptive filter according to the presentinvention.

As shown in FIG. 1, an adaptive filter 1 comprises a digital filter 2connected with adaptive means 4. Data samples D are received and appliedto the digital filter 2 and a filtered output signal FIR_(result) isprovided. The previous filter coefficients C_(n) applied by the filter 2are adapted, i.e. updated, dependent on an error E which is thedifference between received and expected filter outputs FIR_(result) toprovide adapted filter coefficients C_(n) '. These adapted coefficientsC_(n) ' are applied to filter out any systematic errors received in datasamples D. The filter 2, which is a multi-tap (e.g. 8-tap) filter, actsto provide an output FIR_(result) according to the equation ##EQU1##where C_(n) ' are the updated filter coefficients and D_(N+n+2) are thedata samples, N denoting the first data sample in the combined adaptionand filtering process.

The filter acts in response to a complex error signal E where the errorE is deduced as follows:

    E=K.(FIR.sub.result -Expected Result)                      (Equation 2),

where K is a positive constant set to control the speed of adaptation.

The error E is used to update the filter coefficients in adaptive means4 according to the LMS algorithm, specifically equation:

    C.sub.n '=C.sub.n -E.D*.sub.N+n 0≦n≦7        (Equation 3),

where D_(N+n) * is the complex conjugate of D_(N+n).

The adaptive means 4 of the adaptive filter 1 thus acts to alter thefilter coefficients to bring the expected and received filter outputsFIR_(result) into agreement.

The interleaving of filtering (Equation 1) and adapting (Equation 2)operations allows each coefficient to be adapted according to the errorderived from a previous filtering operation before use in the currentfilter operation.

For an adapting and filtering operation where initialisation isrequired, the adaptive operation becomes, in place of Equation 3,

    C.sub.n '=0 for 0≦n≦7.

The apparatus of the adaptive filter 1 is shown in more detail in FIG.2. There is a complex multiplier 6 which receives data samples D from adata memory 8 and selectively receives, from a selector 14 having anoutput signal denoted X, either an error value E from an error register10 or a filter coefficient C_(n) from a control buffer 15. Themultiplier 6 is connected to an arithmetic logic unit ALU to which itprovides a signal M. The arithmetic logic unit ALU provides an outputsignal A, and performs the calculations necessary to provide filter datasamples F and coefficient C_(n) ', as described below.

The modulated data samples F are fed back to a register 16 which isconnected to a selector 18. The other input port of the selector 18 isconnected to a register 20 for holding a filter coefficient C. Theoutput port of the selector 18 is connected to the arithmetic unit ALU,and the arithmetic logic unit ALU output is connected via the controlbuffer 15, to the coefficient memory 12 and selector 14 to both of whichit delivers the updated filter coefficient C'. Selector 18 provides asignal Y to the arithmetic logic unit ALU.

The sequence of operations undertaken by the adaptive filter 1 is shownin Table 1, which details the individual operation of the data memory 8,coefficient memory 12, multiplier 6, ALU, and selectors 14 and 18, andthe values of the data within the circuit. for each time step throughouta complete adaption and filtering operation.

As shown in Table 1, the first data sample D_(N+O) and the error value Eare provided to the multiplier 6 at the time step 1. The multiplier 6operates to provide an output signal M of E.D*_(N+O) which, because ofthe multiplier's three stage pipeline appears 3 time steps later, attime step 4. At time step 3, C_(O) is read from the coefficient memory12 into the C register 20, becoming available to the ALU throughselector 18 at time step 4. The arithmetic logic unit ALU acts toprovide an output A of C_(O) -E.D*_(N+O) in time step 4. This is passedto C_(O) ' both to the coefficient memory 12 and, through selector 14,to the multiplier 6. This completes the adaptation of the first filtercoefficient.

Also at time step 4, D_(N+2) is provided to the multiplier 6 from thedata memory 8. The multiplier 6 operates to provide an output M of C_(O)'.D_(N+2) 3 time steps later, at time step 7. The ALU passes thisunchanged to the F-register 16, completing the modulation of the firstdata sample in the filter.

The above sequence of operations, in which C_(n) ' and C_(n) '.D_(N+n+2)are computed from E, D_(N), C_(n) and D_(N+n+2), for the case n=O, isrepeated for n=1 to 7 inclusive, starting at time steps 3,5,7,9,11,13and 15 respectively. For these sequences, however, the operation of theALU during the filtering (data modulating) phase (at time steps9,11,13,15,17,19 and 21) is modified to produce a result A of F+C_(n)'.D_(N+n+2), thus causing this result to include the sum of allpreviously modulated data, as required by Equation 1.

These repeated sequences are interleaved cooperatively, causing themultiplier and ALU to operate on updated coefficients C_(n) ' andmodulated data samples alternatively, in such a way as to ensure thatthe updated coefficients are provided for immediate use without needingto be written to and subsequently read from a memory.

                                      TABLE 1                                     __________________________________________________________________________        COEFF                                                                     TIME                                                                              MEMORY     MULTIPLIER      ALU                                            STEP                                                                              FN    D  X FN     M    C Y FN A                       DEST                __________________________________________________________________________    1         D.sub.N+0                                                                        E M=X.D* E.D*.sub.N+0                                                                       C.sub.0                                                                         C.sub.0                                                                         Y-M                                                                              C.sub.0 -E.D*.sub.D+0   C'.sub.0            3   READ C.sub.0                                                                        D.sub.N+1                                                                        E M=X.D* E.D*.sub.N+1                                                                       C.sub.1                                                                         X.sub.1                                                                         Y-M                                                                              C.sub.1 -E.D*.sub.N+1   C'.sub.1            4   WRITE C'.sub.0                                                                      N.sub.N+2                                                                        C'.sub.0                                                                        M=X.D  C'.sub.0.D.sub.N+2                                                                     M  C'.sub.0.D.sub.N+2      F                   5   READ C.sub.1                                                                        D.sub.N+2                                                                        E M=X.D* E.D*.sub.N+2                                                                       C.sub.2                                                                         C.sub.2                                                                         Y-M                                                                              C.sub.2 -E.D*.sub.N+2   C'.sub.2            6   WRITE C'.sub.1                                                                      D.sub.N+3                                                                        C'.sub.1                                                                        M=X.D  C'.sub.1.D.sub.N+3                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                                                F                   7   READ C.sub.2                                                                        N.sub.N+3                                                                        E M=X.D* E.D*.sub.N+3                                                                       C.sub.3                                                                         C.sub.3                                                                         Y-M                                                                              C.sub.3 -E.D*.sub.N+3   C'.sub.3            8   WRITE C'.sub.2                                                                      D.sub.N+4                                                                        C'.sub.2                                                                        M=X.D  C'.sub.2.D.sub.N+4                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N+1     F                   9   READ C.sub.3                                                                        D.sub.N+4                                                                        E M=X.D* E.D*.sub.N+4                                                                       C.sub.4                                                                         C.sub.1                                                                         Y-M                                                                              C.sub.1 -E.D*.sub.N+4   C'.sub.4            10  WRITE C'.sub.3                                                                      D.sub.N+5                                                                        C'.sub.3                                                                        M=X.D  C'.sub.3.D.sub.N+5                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N'4 +C'.sub.3.D.sub.N+5                                                               F                   11  READ C.sub.4                                                                        N.sub.N+5                                                                        E M=X.D* E.D*.sub.N+5                                                                       C.sub.5                                                                         C.sub.5                                                                         Y-M                                                                              C.sub.4 -E.D*.sub.N+5   C'.sub.5            12  WRITE C'4                                                                           D.sub.N+6                                                                        C'.sub.4                                                                        M=X.D  C'.sub.4.D.sub.N+6                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N+4 +C'.sub.3.D.sub.N+5                                       +C'.sub.4.D.sub.N+6     F                   13  READ C.sub.5                                                                        D.sub.N+6                                                                        E M=X.D* E.D*.sub.N+6                                                                       C.sub.6                                                                         C.sub.6                                                                         Y-M                                                                              C.sub.0 -E.D*.sub.N+6   C'.sub.6            14  WRITE C'.sub.5                                                                      D.sub.N+7                                                                        C'.sub.5                                                                        M=X.D  C'.sub.5.D.sub.N+7                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N+4 +C'.sub.3.D.sub.N+5                                       +C'.sub.4.D.sub.N+6 +   F                                                     C'.sub.5.D.sub.N+7                          15  READ C.sub.6                                                                        D.sub.N+7                                                                        E M=X.D* E.D*.sub.N+7                                                                       C.sub.7                                                                         C.sub.7                                                                         Y-M                                                                              C.sub.7 -E.D*.sub.N+7   C'.sub.7            16  WRITE C'.sub.6                                                                      D.sub.N+8                                                                        C'.sub.8                                                                        M=X.D  C'.sub.6.D.sub.N+8                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N+4 +C'.sub.3.D.sub.N+5                                       +                       F                                                     C'.sub.4.D.sub.N+6 +C'.sub.5.D.sub.N+7                                        +C'.sub.8.D.sub.N+8                         17  READ C.sub.7                                                                        N.sub.N+8                                                           18  WRITE C'.sub.7                                                                      D.sub.N+9                                                                        C'.sub.7                                                                        M=X.D  C'.sub.7.D.sub.N+8                                                                   F Y+M                                                                              C'.sub.0.D.sub.N+2 +C'.sub.1.D.sub.N+3                                        +C'.sub.2.D.sub.N+4 +C'.sub.3.D.sub.N+5                                       +                       FIResult                                              C'.sub.4.D.sub.N+6 +C'.sub.5.D.sub.N+7                                        +C'.sub.8.D.sub.N+8 +C'.sub.7.D.sub.N+9     19                                                                            20                                                                            21                                                                            __________________________________________________________________________

I claim:
 1. A method of adaptive digital filtering comprising the stepsof:adapting a filter coefficient dependent on a received data sample,filtering by applying the adapted filter coefficient to a later receiveddata sample to generate a modulated data sample, and timing the steps ofadapting and filtering such that the adapted filter coefficient and themodulated data sample are alternatively determined in a arithmetic logicunit.
 2. A method of adaptive digital filtering according to claim 1,further comprising the step of:providing the adapted filter coefficientfor immediate use in filtering without the adapted filter coefficientbeing held in memory.
 3. A method of adaptive digital filteringaccording to claim 1, in which the filtering step comprises the stepof:filtering according to the equation: ##EQU2## where C_(n) ' are theadapted filter coefficients and D_(N+n+2) are the data samples, Ndenoting the first data sample in the combined adaption and filteringprocess.
 4. A method of adaptive digital filtering according to claim 1,wherein the adapting step further comprises of step of:using an errorderived from a previous filtering operation to adapt a filtercoefficient for use in the next filtering operation.
 5. A method ofadaptive digital filtering according to claim 4, in which the step ofusing an error comprises the step of deriving an error E according tothe equation:

    E=K.(FIR.sub.result -Expected Result)

where K is a positive constant set to control the speed of adaptation,and in which method, the step of adapting the filter coefficientcomprises the step of adapting the filter coefficient according to theequation:

    C.sub.n '=C.sub.n -E.D*.sub.N+n, 0≦n≦7

where D_(N+n) * is the complex conjugate of D_(N+n-).
 6. A method ofradio or telecommunications reception comprising the step of adaptivedigital filtering by steps of:adapting a filter coefficient dependent ona received data sample, filtering by applying the adapted filtercoefficient to a later received data sample to generate a modulated datasample, and timing the steps of adapting and filtering such that theadapted filter coefficient and the modulated data sample arealternatively determined in an arithmetic logic unit.
 7. An adaptivedigital filter comprising:an arithmetic logic unit operative to adapt afilter coefficient dependent on a received data sample and to generate amodulated data sample by applying the adapted filter coefficient to alater received data sample, and a timing device operative to control thearithmetic logic unit to alternatively provide the adapted filtercoefficient and the modulated data sample.
 8. An adaptive digital filteraccording to claim 7, wherein the timing device comprises meansoperative to produce clock cycles to control the operation of thearithmetic logic unit and the adaptive digital filter further comprisesmeans operative to provide the adapted filter coefficient for use forfiltering during the same clock cycle during which the adapted filtercoefficient is produced.
 9. An adaptive digital filter according toclaim 8, further comprising means operative to read the adapted filtercoefficient into the arithmetic logic unit for filtering one clock cycleafter the adapted filter coefficient is generated.
 10. An adaptivedigital filter according to claim 7, further comprising a memory andmeans operative to, at a predetermined time, both supply the adaptedfilter coefficient to the arithmetic logic unit for the filteringoperation and write the adapted filter coefficient to the memory forlater use.
 11. An adaptive digital filter according to claim 7, furthercomprising means operative to provide an error derived from a previousfiltering operation to the arithmetic logic unit to adapt a filtercoefficient for use in the next filtering operation.
 12. A receiver forradio or telecommunications comprising:an adaptive digital filter whichcomprises:an arithmetic logic unit operative to adapt a filtercoefficient dependent on a received data sample and to generate amodulated data sample by applying the adapted filter coefficient to alater received data sample, and a timing device operative to control thearithmetic logic unit to alternatively provide the adapted filtercoefficient and the modulated data sample.